// grunt-contrib-clean: 用于清除项目中的临时文件
// 啥叫临时文件呢？
const sass = require("sass");
const loadGruntTasks = require("load-grunt-tasks");

module.exports = grunt => {
  grunt.initConfig({
    clean: {
      // temp: "temp/app.js", // 指定清除的文件
      temp: "temp/**", // 指定清除的文件
    },
    sass: {
      options: {
        sourceMap: true,
        implementation: sass
      },
      main: {
        files: {
          'dist/css/main.css': "src/scss/main.scss"
        }
      }
    },
    babel: {
      options: {
        presets: ['@babel/preset-env']
      },
      main: {
        files: {
          'dist/js/app.js': 'src/js/app.js'
        }
      }
    },
    watch: {
      js: {
        files: ['src/js/*.js'],
        tasks: ['babel']
      },
      css: {
        files: ['src/scss/*.scss'],
        tasks: ['sass']
      }
    }
  })

  // grunt.loadNpmTasks("grunt-contrib-clean"); // 不行，没有配置该插件需要的配置; 运行方式：yarn grunt clean
  // 该插件是一个多目标运行的方式，所以需要配置initConfig

  loadGruntTasks(grunt);
  grunt.registerTask("default", ["sass", "babel", "watch"])
}